home *** CD-ROM | disk | FTP | other *** search
/ Atari Mega Archive 1 / Atari Mega Archive - Volume 1.iso / archiver / darc.arc / DARC.DOC next >
Text File  |  1988-03-14  |  10KB  |  228 lines

  1.        Documentation for DARC-Utility for Atari ST
  2.        ===========================================
  3.  
  4.          written by: Gunnar Teege
  5.                      Technische Universitaet Muenchen
  6.                      D-8000 Muenchen
  7.          Version 1.1 (Dec. 87)
  8.  
  9. Introduction:
  10. -------------
  11.  
  12.    DARC is a utility for archiving whole folder-trees from the
  13.    TOS file system into a single file preserving the tree
  14.    structure. The contents of the tree is compressed, so that
  15.    the archive will need only about 50 to 70 % of the space
  16.    the tree needed.
  17.    The compression and collecting of many files into a single
  18.    one is done by the already existing utility ARC. THIS PROGRAM
  19.    IS NEEDED TO RUN DARC! DARC is only a frame program that
  20.    runs through the tree (well, perhaps 'walk' fits better here,
  21.    when the tree is on a floppy) collecting everything it finds
  22.    and feeding it into the ARC program.
  23.    When DARC is applied to a 'flat' tree (i.e. a folder not con-
  24.    taining any subfolders) you get the same result as if you
  25.    simply ARC all files in the folder. (This is just what DARC
  26.    does in this case).
  27.  
  28.    DARC uses the following features of ARC:
  29.      a - add files to archive
  30.      m - move files to archive
  31.      d - delete files from archive
  32.      x - extract files from archive
  33.    where 'a' and 'm' sometimes are combined with option
  34.      s - suppress compression
  35.    DARC relys on the facts that ARC
  36.      - puts all extracted files in the current folder
  37.      - can use absolute pathnames for both the archive name and
  38.        the file names
  39.      - does expansion of xxx.* and *.* the right way when given
  40.        to specify the files to add or move into the archive and
  41.        automatically leaves out any folders matching these names
  42.    (I have the ARC - Version made by Harvey Johnson and hope that
  43.    all other (if existing) work the same way.)
  44.  
  45.    DARC is written in C and compiled with Megamax.
  46.  
  47. Usage:
  48. ------
  49.    The DARC call is as follows:
  50.  
  51.       DARC.TTP [c|x]{f|m} <archive> <root>
  52.  
  53.    where
  54.       c  = create archive from tree
  55.       x  = extract tree from archive
  56.       f  = fast version
  57.       m  = move; don't preserve source
  58.       <archive>  = Name of archive file
  59.       <root>     = Name of the root - folder of the tree
  60.    'f' and 'm' are optional and change only the way of working.
  61.    The archives are always identical.
  62.    <archive> and <root> can be absolute pathnames or relative
  63.    to the current folder.
  64.    <root> can also be the name of a disk station of the form
  65.       A:
  66.    In this case the whole contents of the disk is put in the archive
  67.    when creating or the disk is used as root of the tree when
  68.    extracting.
  69.    When creating the archive <archive> must not exist and <root>
  70.    must exist and be a folder or disk station. When extracting
  71.    <archive> must exist and <root> must be a disk station or
  72.    must not exist (it is created by DARC - of course you can't
  73.    do this with a disk station).
  74.  
  75.    IMPORTANT: The ARC utility must reside in the same folder
  76.    as the archive and must have the name ARC.TTP. So if you say
  77.       DARC.TTP c C:\work\games.arc A:
  78.    you need ARC.TTP in folder work on disk C:
  79.  
  80. METHOD:
  81. -------
  82.  
  83.    So, of course you are interested in how it's done. (If not,
  84.    stop reading and start using). The way to create an archive
  85.    is simple to describe:
  86.      - recursively create an archive from each subfolder of
  87.        <root> (if there are any)
  88.      - build a table mapping subarchive names to folder names
  89.      - put all subarchives, the table and all ordinary files
  90.        in <root> into the archive.
  91.  
  92.    (Yes, I like recursion very much. Efficiency? Well - I want to
  93.    use DARC to maintain backup copies of my program floppys.
  94.    So it's not a program for everyday use (I HOPE!).)
  95.  
  96.    The subarchives are called
  97.      DARC§%<level>.<no>
  98.    where <level> is a two-digit number describing the level of
  99.    the corresponding subfolders in the tree. Subfolders in the
  100.    root have level 1. <no> is the tree-digit number of the sub-
  101.    archive in its folder. The first subarchive always has number 1.
  102.    The table for a folder has the name
  103.      DARC§%<level>.000
  104.    where <level> is the level of the subarchives described. So
  105.    the table for the root folder is called DARC§%01.000 .
  106.    The table simply contains the name for the first subfolder
  107.    (corresponding to subarchive DARC§%<level>.001) in the fist
  108.    line, the name for the next (corresponding to DARC§%<level>.002)
  109.    in the second line and so on.
  110.  
  111.    In the case a subfolder is empty (contains no files or folders)
  112.    no subarchive is created. Only the foldername is recorded in
  113.    the table. (This applies to the root too: if you DARC an empty
  114.    folder DARC does NOTHING.)
  115.  
  116.    Now the details: where to put the intermediate files an when.
  117.    This should be important for people with not so much disk
  118.    space. But please remember what applies to the whole next
  119.    section: I can only tell for the intermediate archives used
  120.    by DARC. I don't know how much workspace ARC needs on disk
  121.    when adding to or extracting from a file. In my tests I found,
  122.    for adding to an archive it seems to copy the whole archive.
  123.    So it needs about once the space for the archive in use 
  124.    additionally to the numbers given in the following section.
  125.  
  126.    I use the term 'workdir' for the folder, the archive is (or
  127.    will be) in (and the ARC.TTP; see above).
  128.  
  129.    You have the choice between three ways, DARC does it's job.
  130.    The normal way is used, when you give no options in the
  131.    command line. In this case, when creating an archive, DARC
  132.    starts with the subfolders. For each one it creates the subarchive
  133.    in the workdir, puts it in the archive (in the workdir) and
  134.    deletes the subarchive. While doing this, the table file is
  135.    built in the workdir. After all subfolders are done, the table
  136.    and the normal files are added to the archive. So at any given
  137.    time in the workdir you have the half-done archives for each 
  138.    level in the tree on the path from root to the current folder.
  139.    In the worst case this is about twice the size the archive has
  140.    when finished.
  141.    When extracting, DARC works like this: It creates the root,
  142.    changes into it, and extracts all files from the archive.
  143.    If there are subarchives, it moves each subarchive into the
  144.    workdir, extracts the tree in it and deletes the subarchive in
  145.    the workdir before going on to the next one. Thus at any given
  146.    time you find only the main archive and one subarchive in the
  147.    workdir. In the worst case this needs again about twice the
  148.    space for the main archive in the workdir (consider a tree 
  149.    containing only one large subfolder). As archives nearly always
  150.    are smaller then the corresponding trees, no extra space is
  151.    needed on the disk where the tree is put (it should work well
  152.    to DARC and unDARC full floppys).
  153.  
  154.    If you specify the option 'f' ('fast') in the command line DARC
  155.    tries to work faster but needs more space in the workdir. When
  156.    creating the archive ALL subarchives are collected in the workdir
  157.    before archiving them. When extracting, the subarchives are
  158.    extracted in the workdir and then deleted in the archive before
  159.    the normal files are extracted in the destination folder.
  160.    This is faster when the workdir is on hard- or ramdisk and the
  161.    destination is on floppy. Of course it will be slower than without
  162.    the option if the workdir is on floppy (why should something
  163.    need less time only because it is done with an option called
  164.    'fast'...).
  165.  
  166.    If you are short with space for your workdir you should use
  167.    the option 'm' ('move'). It trades place for time and works
  168.    like this: When creating the archive, after creating a subarchive
  169.    in the workdir the subfolder is deleted and the subarchive moved
  170.    to its place. So you have only one (sub)archive in the workdir
  171.    at any given time (plus the table file(s)). This needs only
  172.    about as much place as the main archive when it's done. On the
  173.    other hand your tree is eaten away